//
//  MPBlueToothManagerDefine.h
//  MPOSDemoProject
//
//  Created by lfy on 2018/6/7.
//  Copyright © 2018年 develop. All rights reserved.
//  一些自定义的枚举和回调

#ifndef MPBlueToothDefine_h
#define MPBlueToothDefine_h

#pragma mark - MPBluetoothManager

// 蓝牙连接类型，iOS只适合Ble连接
typedef enum : NSUInteger {
    ble,
    other,
} BluetoothType;

// 磁道加密算法枚举
typedef enum : NSUInteger {
    // 银联标准算法
    STANDER_UNIONPAY_ALGORITH = 0,
    // 全磁道加密算法
    FULL_TRACK_ENCRYPTION = 1,
    // 固定秘钥加密
    FIXED_KEY_ENCRYPTION = 2,
    // MAC9606模式
    MAC9606 = 3,
} TrackAlgModeEnum;

// 操作状态枚举
typedef enum : NSUInteger {
    success,    // 操作成功
    fail,       // 操作失败
} OnOperateStatus;

// 读卡方式枚举
typedef enum : NSUInteger {
    MSR = 0,        // 磁条卡
    IC = 1,         // 接触卡
    RFID = 2,       // 非接触卡
    COMPOSITE = 3,  // 复合卡
} CardReadTypeEnum;

// 操作代码枚举
typedef enum : NSUInteger {
    CLEAR_ALL,  // 清除所有消息
    ADD_ITEM,   // 增加一条豪华版
} OperateCodeEnum;


// LCD显示模式
typedef enum : NSUInteger {
    POSITIVE_DISPLAY = 0,   // 正显
    REVERSED_DISPLAY = 1,   // 反显
} DisplayModeEnum;

// LCD显示对齐模式
typedef enum : NSUInteger {
    ALIGN_RIGHT_DISPLAY = 0,    // 右对齐
    ALIGN_CENTER_DISPLAY = 1,   // 居中
    ALIGN_LEFT_DISPLAY = 2,     // 左对齐
} DisplayDirectEnum;

// 操作回调
typedef enum : NSUInteger {
    SUCCESS = 0,        //成功
    ERROR_ARGUMENT, //参数错误
    ERROR_OTHER,    //其他错误
}OprResEnum;

// 交易流程
typedef enum : NSUInteger {
    FLOW_ALL = 0,       // 全流程
    FLOW_SIMPLE = 1,    // 简易流程
} EmvTransFlowEnum;

// 交易类型
typedef enum : NSUInteger {
    CONSUME = 0,    // 消费
    BALANCES = 1,   // 查询余额
    EC_CONSUME = 2,
    EC_BALANCES = 3
} EmvTransTypeEnum;

// 交易状态
typedef enum : NSUInteger {
    DECLINE,    //交易拒绝
    SUSPEND,    //交易中止
    CANCEL,     //交易取消
} EmvResEnum;

// 更新秘钥状态
typedef enum : NSUInteger {
    UPDATA_SUCCESS = 0,
    ALGORITHM_NOT_SUPPORT,
    KEY_NOT_EXIST,
    PARAMETER_ERROR,
    OTHER_ERROR,
} UpdateKeyResultEnum;

// 加密枚举
typedef enum : NSUInteger {
    PINKEY,   // Pin加密密钥
    MACKEY,   // mac加密密钥
    TDKKEY,   // 磁道信息加密密钥
} WorkKeyTypeEnum;

// 加密类型
typedef enum : NSUInteger {
    NONE,   // 不指定算法
    DES,    // des加密
    TDES,   // 3des加密
} AlgModeEnum;

// 加密或者解密
typedef enum : NSUInteger {
    ENCRYPT,    // 加密
    DECRYPT,    // 解密
} DesModeEnum;

// 加密失败
typedef enum : NSUInteger {
    E_PARAMETER_ERROR,      //参数错误
    E_ALGORITHM_NOTSUPPORT, //算法不支持
    E_KEY_NOT_EXIST,        //密钥不存在
    E_DATA_LENGTH_ERROR,    //数据长度错误
    E_OTHER_ERROR,          //其它错误
} EncryptionFailEnum;

// 算法类型
typedef enum : NSUInteger {
    MAC_X919,       // x919模式
    MAC_MAC9606,    // MAC9606模式
    MAC_UNIONPAY,   // 银联CUP算法
    MAC_EMV2000     // EMV2000的算法
} MacTypeEnum;

// 设备键盘输入错误码
typedef enum : NSUInteger {
    CANCEL_INPUT,       // 取消输入
    INPUT_TIMEOUT,      // 等待超时
    INPUT_TIMEOUTING,   // 处理中
    PINKEY_NOT_EXIST,   // 秘钥不存在
    ENTER_BYPASS,       // 直接确认健
    INPUT_OTHER_ERROR,  // 其他错误
} InputPinFailEnum;

#endif /* MPBlueToothDefine_h */

















